#ifndef GAME_H
#define GAME_H

#include <cstdlib>

#include <QObject>
#include <QTime>

class Game : public QObject
{
    Q_OBJECT

signals:
     bool gameOver() const;

public:
    Game(QObject* pkParent = NULL);
    ~Game();

    bool isRunning() const;

    quint32 score() const;
    quint32 elapsed() const;
    quint32 shots() const;

    quint32 cowCount() const;

    void addMatch();
    void addShot();

public slots:
    void start();
    void clear();
    void setDifficulty(int iIndex);

private:
    //------------------------------------------------
    //  Attributes.
    //------------------------------------------------
    // Timer.
    QTime   m_kStartTime;
    QTime   m_kStopTime;

    // Variables.
    bool    m_bIsRunning;
    quint32 m_uiCowCount;
    quint32 m_uiShots;
    quint32 m_uiMatches;
};

#endif // GAME_H
